﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace GestionEco
{
    public class Chameau : Herbivore
    {
        private static int numero = 0;

        public Chameau(bool s, int uneVieMax, int uneAttaque, int uneEsquive, int desDegats, int uneVue, int uneRegen, int uneFaimMax, int unCoeffFaim, int uneSoifMax, int unCoeffSoif, int desPointsActionActuels, int unAgeMax, int uneMajorite, int unNbTourReprod, Image imageChameau)
            : base(s, uneVieMax, uneAttaque, uneEsquive, desDegats, uneVue, uneRegen, uneFaimMax, unCoeffFaim, uneSoifMax, unCoeffSoif, desPointsActionActuels, unAgeMax, uneMajorite, unNbTourReprod, "Chameau-" + numero++, imageChameau, new List<String> { "Désert" })
        {
 
        }

        public override void seDeplacer()
        {
            base.seDeplacer();
        }

        public override EtreVivant seReproduire(EtreVivant unChameau)
        {
            if (!retraitPoints(POINT_SEREPRODUIRE))
            {
                Console.WriteLine("Plus de points pour se reproduire");
                return null;
            }
            else
            {
                Chameau enfant = null;
                if (this.Sexe != unChameau.Sexe)
                {
                    Random rnd = new Random();

                    int enfAttaque = (this.Attaque + unChameau.Attaque) / 2;
                    int enfEsquive = (this.Esquive + unChameau.Esquive) / 2;
                    int enfDegats = (this.Degats + unChameau.Degats) / 2;
                    int enfVue = (this.Vue + unChameau.Vue) / 2;
                    int enfRegen = (this.Regen + unChameau.Regen) / 2;
                    int enfFaimMax = (this.FaimMax + unChameau.FaimMax) / 2;
                    int enfCoeffFaim = (this.CoeffFaim + unChameau.CoeffFaim) / 2;
                    int enfVieMax = (this.VieMax + unChameau.VieMax) / 2;
                    int enfSoifMax = (this.SoifMax + unChameau.SoifMax) / 2;
                    int enfCoeffSoif = (this.CoeffSoif + unChameau.CoeffSoif) / 2;
                    int enfPointsActuel = 6;
                    int enfAgeMax = (this.AgeMax + unChameau.AgeMax) / 2;
                    int enfMajorite = (this.Majorite + unChameau.Majorite) / 2;
                    int enfNbTourReprod = (this.NbTourReprod + unChameau.NbTourReprod) / 2;
                    int enfS = rnd.Next(1, 3);
                    bool enfSexe;

                    if (enfS == 1)
                    {
                        enfSexe = true;
                    }
                    else
                    {
                        enfSexe = false;
                    }


                    enfant = new Chameau(enfSexe, enfVieMax, enfAttaque, enfEsquive, enfDegats, enfVue, enfRegen, enfFaimMax, enfCoeffFaim, enfSoifMax, enfCoeffSoif, enfPointsActuel, enfAgeMax, enfMajorite, enfNbTourReprod, this.imageEtre);
                }
                else
                {
                    Console.WriteLine("Les deux etres vivants ont le meme sexe");
                    return null;
                }

                return enfant;
            }
        }
    }
}
